package com.qixiaobao.direct.invoice.mapper;

import com.qixiaobao.direct.invoice.domain.dto.DirectInvoiceDTO;
import com.qixiaobao.direct.invoice.domain.vo.DirectInvoiceChargeVO;
import com.qixiaobao.direct.invoice.domain.vo.DirectInvoiceVO;
import com.qixiaobao.direct.invoice.domain.vo.DirectWaitInvoiceVO;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * @Description 直投发票管理（新）  数据层
 * @Author yangxm
 * @Date 2025/7/3 15:35
 */
@Mapper
public interface DirectInvoiceNewMapper {


    /**
     * 查询待开票列表
     * @param directInvoiceDTO
     * @return
     */
    List<DirectWaitInvoiceVO> selectWaitInvoiceList(DirectInvoiceDTO directInvoiceDTO);

    /**
     * @Description 查询开票中、已开票列表
     * @Author yangxm
     * @Date 2025/7/3 16:09
     * @param directInvoiceDTO
     * @return java.util.List<com.qixiaobao.directinvoice.domain.vo.DirectInvoiceVO>
     */
    List<DirectInvoiceVO> selectInvoiceList(DirectInvoiceDTO directInvoiceDTO);

    /**
     * @Description 开票中、已开票 - 详情
     * @Author yangxm
     * @Date 2025/7/3 16:52
     * @param invoiceId
     * @return java.util.List<com.qixiaobao.directinvoice.domain.vo.DirectInvoiceChargeVO>
     */
    List<DirectInvoiceChargeVO> selectInvoiceChargeListByInvoiceId(Long invoiceId);

    /**
     * @Description 修改供应商备注
     * @Author yangxm
     * @Date 2025/7/3 17:19
     * @param directInvoiceDTO
     * @return int
     */
    int updateSupplyRemark(DirectInvoiceDTO directInvoiceDTO);

    /**
     * @Description 更新发票文件
     * @Author yangxm
     * @Date 2025/7/3 17:25
     * @param directInvoiceDTO 
     * @return int
     */
    int updateInvoiceFile(DirectInvoiceDTO directInvoiceDTO);

    /**
     * @Description 查询发票文件
     * @Author yangxm
     * @Date 2025/7/3 17:25
     * @param directInvoiceDTO
     * @return java.lang.String
     */
    String selectInvoiceFile(DirectInvoiceDTO directInvoiceDTO);
}
